/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package cardumen2d;

import control.GeneradorStandardMinimo;
import java.util.Random;

/**
 *
 * @author jorgeorm
 */
public class PezCardumen extends Pez{
    
    private Random generador;
    private double [] vecindad;
    private String estado;
    private int maxColetazos, direcciones;
    public PezCardumen (int escenWidth, int escenHeight, Random genAleat){
        super(escenWidth, escenHeight);
        this.generador = genAleat;
        direcciones = 8;
        x_pez = generador.nextInt(escenWidth);
        y_pez = generador.nextInt(escenHeight);
        sentido =  generador.nextInt(direcciones);
        estado = "no-vivo";
        vecindad = new double[direcciones];
        maxColetazos = 3;
    }
    
    public double consultarPresion(){
        
        double presion=0.0;
        for(int i=0; i<vecindad.length; i++){
            presion+= vecindad[i];
        }
        return presion;
    }
    
    public void movimiento(){
        this.moverPez(2);
    }
    
    public void busqueda(){
        if(coletazos==0){
            sentido = generador.nextInt(direcciones);
            do{
                coletazos = generador.nextInt(maxColetazos);
            }while(coletazos == 0);
        }else{
            coletazos--;
        }
        moverPez(4);
    }
    
    public void ejecutarEstado(){
        if(estado.equals("movimiento")){
            movimiento();
        }else {
            busqueda();
        }
    }
    
    public void determinarEstado(){
        
        double presionActual;
        presionActual=consultarPresion();
        
        if((presionActual>=0.64) && (presionActual<=0.72)) {
            estado = "busqueda" ;
        }else {
            estado = "movimiento";
        }
    }
    
    public void setVecindad(double p, int pos) {
        vecindad[pos]=p;
    }
}
        